#ifndef __edaSolution_h__
#define __edaSolution_h__

#include <iostream>

#include "edaSerialize.h"

using namespace std;

class edaSolution : public edaSerialize
{
 public:
  edaSolution() {}
  edaSolution(const edaSolution &sol) {}
  ~edaSolution() {}
  virtual edaSolution* clone() const = 0;
  virtual double fullEvaluate() = 0;
  virtual double partialEvaluate() = 0;
  virtual void Serialize( edaBuffer &buf, bool pack ) {}
  virtual void printOn(ostream &os) const;
  virtual edaSolution& operator = (const edaSolution &sol) = 0;
  virtual bool operator == (const edaSolution &sol) const = 0;
};

ostream& operator<< (ostream &os, const edaSolution &sol);
#endif
